//  Copyright (c) 1996-1997 by Autodesk, Inc.
//
//  By using this code, you are agreeing to the terms and conditions of
//  the License Agreement included in the documentation for this code.
//
//  AUTODESK MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE CORRECTNESS
//  OF THIS CODE OR ANY DERIVATIVE WORKS WHICH INCORPORATE IT. AUTODESK
//  PROVIDES THE CODE ON AN "AS-IS" BASIS AND EXPLICITLY DISCLAIMS ANY
//  LIABILITY, INCLUDING CONSEQUENTIAL AND INCIDENTAL DAMAGES FOR ERRORS,
//  OMISSIONS, AND OTHER PROBLEMS IN THE CODE.
//
//  Use, duplication, or disclosure by the U.S. Government is subject to
//  restrictions set forth in FAR 52.227-19 (Commercial Computer Software
//  Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) (Rights in Technical
//  Data and Computer Software), as applicable.
//
// $Header: /Components/Internal/DWF Toolkit/v7.0.1/docs/DWF Toolkit/Whip2D/Specification/whipSpec/Opcodes/hufcodes.h 1     5/10/05 2:13a Evan $



// ==========================================
// Group 3X Data:

static WT_Huffman::Code Group3   = {WT_Huffman::Group3,   2},
                        Group3X  = {WT_Huffman::Group3X,  2},
                        Literal  = {WT_Huffman::Literal,  2},
                        Reserved = {WT_Huffman::Reserved, 2};

static WT_Huffman huffman[] = {
   //  run      white   wl     black   bl
         0,     0x35,    8,    0x37,   10,    //    00110101 |     0000110111
         1,     0x07,    6,    0x02,    3,    //      000111 |            010
         2,     0x07,    4,    0x03,    2,    //        0111 |             11
         3,     0x08,    4,    0x02,    2,    //        1000 |             10
         4,     0x0B,    4,    0x03,    3,    //        1011 |            011
         5,     0x0C,    4,    0x03,    4,    //        1100 |           0011
         6,     0x0E,    4,    0x02,    4,    //        1110 |           0010
         7,     0x0F,    4,    0x03,    5,    //        1111 |          00011
         8,     0x13,    5,    0x05,    6,    //       10011 |         000101
         9,     0x14,    5,    0x04,    6,    //       10100 |         000100
        10,     0x07,    5,    0x04,    7,    //       00111 |        0000100
        11,     0x08,    5,    0x05,    7,    //       01000 |        0000101
        12,     0x08,    6,    0x07,    7,    //      001000 |        0000111
        13,     0x03,    6,    0x04,    8,    //      000011 |       00000100
        14,     0x34,    6,    0x07,    8,    //      110100 |       00000111
        15,     0x35,    6,    0x18,    9,    //      110101 |      000011000
        16,     0x2A,    6,    0x17,   10,    //      101010 |     0000010111
        17,     0x2B,    6,    0x18,   10,    //      101011 |     0000011000
        18,     0x27,    7,    0x08,   10,    //     0100111 |     0000001000
        19,     0x0C,    7,    0x67,   11,    //     0001100 |    00001100111
        20,     0x08,    7,    0x68,   11,    //     0001000 |    00001101000
        21,     0x17,    7,    0x6C,   11,    //     0010111 |    00001101100
        22,     0x03,    7,    0x37,   11,    //     0000011 |    00000110111
        23,     0x04,    7,    0x28,   11,    //     0000100 |    00000101000
        24,     0x28,    7,    0x17,   11,    //     0101000 |    00000010111
        25,     0x2B,    7,    0x18,   11,    //     0101011 |    00000011000
        26,     0x13,    7,    0xCA,   12,    //     0010011 |   000011001010
        27,     0x24,    7,    0xCB,   12,    //     0100100 |   000011001011
        28,     0x18,    7,    0xCC,   12,    //     0011000 |   000011001100
        29,     0x02,    8,    0xCD,   12,    //    00000010 |   000011001101
        30,     0x03,    8,    0x68,   12,    //    00000011 |   000001101000
        31,     0x1A,    8,    0x69,   12,    //    00011010 |   000001101001
        32,     0x1B,    8,    0x6A,   12,    //    00011011 |   000001101010
        33,     0x12,    8,    0x6B,   12,    //    00010010 |   000001101011
        34,     0x13,    8,    0xD2,   12,    //    00010011 |   000011010010
        35,     0x14,    8,    0xD3,   12,    //    00010100 |   000011010011
        36,     0x15,    8,    0xD4,   12,    //    00010101 |   000011010100
        37,     0x16,    8,    0xD5,   12,    //    00010110 |   000011010101
        38,     0x17,    8,    0xD6,   12,    //    00010111 |   000011010110
        39,     0x28,    8,    0xD7,   12,    //    00101000 |   000011010111
        40,     0x29,    8,    0x6C,   12,    //    00101001 |   000001101100
        41,     0x2A,    8,    0x6D,   12,    //    00101010 |   000001101101
        42,     0x2B,    8,    0xDA,   12,    //    00101011 |   000011011010
        43,     0x2C,    8,    0xDB,   12,    //    00101100 |   000011011011
        44,     0x2D,    8,    0x54,   12,    //    00101101 |   000001010100
        45,     0x04,    8,    0x55,   12,    //    00000100 |   000001010101
        46,     0x05,    8,    0x56,   12,    //    00000101 |   000001010110
        47,     0x0A,    8,    0x57,   12,    //    00001010 |   000001010111
        48,     0x0B,    8,    0x64,   12,    //    00001011 |   000001100100
        49,     0x52,    8,    0x65,   12,    //    01010010 |   000001100101
        50,     0x53,    8,    0x52,   12,    //    01010011 |   000001010010
        51,     0x54,    8,    0x53,   12,    //    01010100 |   000001010011
        52,     0x55,    8,    0x24,   12,    //    01010101 |   000000100100
        53,     0x24,    8,    0x37,   12,    //    00100100 |   000000110111
        54,     0x25,    8,    0x38,   12,    //    00100101 |   000000111000
        55,     0x58,    8,    0x27,   12,    //    01011000 |   000000100111
        56,     0x59,    8,    0x28,   12,    //    01011001 |   000000101000
        57,     0x5A,    8,    0x58,   12,    //    01011010 |   000001011000
        58,     0x5B,    8,    0x59,   12,    //    01011011 |   000001011001
        59,     0x4A,    8,    0x2B,   12,    //    01001010 |   000000101011
        60,     0x4B,    8,    0x2C,   12,    //    01001011 |   000000101100
        61,     0x32,    8,    0x5A,   12,    //    00110010 |   000001011010
        62,     0x33,    8,    0x66,   12,    //    00110011 |   000001100110
        63,     0x34,    8,    0x67,   12,    //    00110100 |   000001100111

        // N*64 codes located at index N+63
        64,     0x1B,    5,    0x0F,   10,    //         11011 |     0000001111
        128,    0x12,    5,    0xC8,   12,    //         10010 |   000011001000
        192,    0x17,    6,    0xC9,   12,    //        010111 |   000011001001
        256,    0x37,    7,    0x5B,   12,    //       0110111 |   000001011011
        320,    0x36,    8,    0x33,   12,    //      00110110 |   000000110011
        384,    0x37,    8,    0x34,   12,    //      00110111 |   000000110100
        448,    0x64,    8,    0x35,   12,    //      01100100 |   000000110101
        512,    0x65,    8,    0x6C,   13,    //      01100101 |  0000001101100
        576,    0x68,    8,    0x6D,   13,    //      01101000 |  0000001101101
        640,    0x67,    8,    0x4A,   13,    //      01100111 |  0000001001010
        704,    0xCC,    9,    0x4B,   13,    //     011001100 |  0000001001011
        768,    0xCD,    9,    0x4C,   13,    //     011001101 |  0000001001100
        832,    0xD2,    9,    0x4D,   13,    //     011010010 |  0000001001101
        896,    0xD3,    9,    0x72,   13,    //     011010011 |  0000001110010
        960,    0xD4,    9,    0x73,   13,    //     011010100 |  0000001110011
        1024,   0xD5,    9,    0x74,   13,    //     011010101 |  0000001110100
        1088,   0xD6,    9,    0x75,   13,    //     011010110 |  0000001110101
        1152,   0xD7,    9,    0x76,   13,    //     011010111 |  0000001110110
        1216,   0xD8,    9,    0x77,   13,    //     011011000 |  0000001110111
        1280,   0xD9,    9,    0x52,   13,    //     011011001 |  0000001010010
        1344,   0xDA,    9,    0x53,   13,    //     011011010 |  0000001010011
        1408,   0xDB,    9,    0x54,   13,    //     011011011 |  0000001010100
        1472,   0x98,    9,    0x55,   13,    //     010011000 |  0000001010101
        1536,   0x99,    9,    0x5A,   13,    //     010011001 |  0000001011010
        1600,   0x9A,    9,    0x5B,   13,    //     010011010 |  0000001011011
        1664,   0x18,    6,    0x64,   13,    //        011000 |  0000001100100
        1728,   0x9B,    9,    0x65,   13,    //     010011011 |  0000001100101
        1792,   0x08,   11,    0x08,   11,    //   00000001000 |    00000001000
        1856,   0x0C,   11,    0x0C,   11,    //   00000001100 |    00000001100
        1920,   0x0D,   11,    0x0D,   11,    //   00000001101 |    00000001101
        1984,   0x12,   12,    0x12,   12,    //  000000010010 |   000000010010
        2048,   0x13,   12,    0x13,   12,    //  000000010011 |   000000010011
        2112,   0x14,   12,    0x14,   12,    //  000000010100 |   000000010100
        2176,   0x15,   12,    0x15,   12,    //  000000010101 |   000000010101
        2240,   0x16,   12,    0x16,   12,    //  000000010110 |   000000010110
        2304,   0x17,   12,    0x17,   12,    //  000000010111 |   000000010111
        2368,   0x1C,   12,    0x1C,   12,    //  000000011100 |   000000011100
        2432,   0x1D,   12,    0x1D,   12,    //  000000011101 |   000000011101
        2496,   0x1E,   12,    0x1E,   12,    //  000000011110 |   000000011110
        2560,   0x1F,   12,    0x1F,   12,    //  000000011111 |   000000011111

          -1,   0x01,   12,    0x01,   12,    //  000000000001 | 000000000001

        -666,   0x01,    9,    0x01,    9,    //     000000001 |    000000001
        -666,   0x01,   10,    0x01,   10,    //    0000000001 |   0000000001
        -666,   0x01,   11,    0x01,   11,    //   00000000001 |  00000000001
        -666,   0x00,   12,    0x00,   12,    //  000000000000 | 000000000000
};
